A convolutional neural network (CNN) is a supervised deep-learning neural network with multiple layers of similarly structured convolutional feature extraction operations followed by a linear neural network (NN) classifier. A CNN is a supervised deep-learning neural network with multi-level convolution, nonlinearity and pooling layers. A CNN-like deep-learning neural networks have shown great performance advantages over other machine learning approaches to vision tasks.
CNN is a “rate”-based neural network, meaning that it is suitable for implementation on conventional central processing units (CPUs) with significant numerical floating-pointing capabilities. A neuromorphic architecture implemented with spiking neurons with CNN capability is highly desirable for vision tasks.
The spike-based HMAX-like method of Literature Reference No. 2 (see the List of Cited Incorporated Literature References) is an implementation of the original HMAX algorithm (see Literature Reference Nos. 7 and 8), and does not teach a principled approach for conversion of general HMAX architecture to spike implementation, much less CNN architectures. In Literature Reference No. 5, the authors use STDP-like unsupervised methods to learn pre-classification features, then use non-spiking classifier on these features.
The frameless spike-based convolution network (described in Literature Reference No. 6) exploits AER (address event representation) for spike communication, and employs kernel projection to implement convolution computation. Although this approach can achieve fast input-to-output response time, it requires massive amount of digital hardware resources (such as memory and accumulator for map integration) which has not yet shown any benefit in power savings. There is also no good solution to implement sigmoid function in Literature Reference No. 6. Therefore, it is difficult to fully implement a CNN.
Thus, a continuing need exists for converting convolutional neural networks to spiking neural networks.